<html>
 <head>
  <meta charset="utf-8"/>
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"/>
  <title>
   R语言知识体系概览  | 数螺 | NAUT IDEA
  </title>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" rel="stylesheet"/>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
  <style type="text/css">
   #xmain img {
                  max-width: 100%;
                  display: block;
                  margin-top: 10px;
                  margin-bottom: 10px;
                }

                #xmain p {
                    line-height:150%;
                    font-size: 16px;
                    margin-top: 20px;
                }

                #xmain h2 {
                    font-size: 24px;
                }

                #xmain h3 {
                    font-size: 20px;
                }

                #xmain h4 {
                    font-size: 18px;
                }


                .header {
	           background-color: #0099ff;
	           color: #ffffff;
	           margin-bottom: 20px;
	        }

	        .header p {
                  margin: 0px;
                  padding: 10px 0;
                  display: inline-block;  
                  vertical-align: middle;
                  font-size: 16px;
               }

               .header a {
                 color: white;
               }

              .header img {
                 height: 25px;
              }
  </style>
  <script src="http://cdn.bootcss.com/jquery/3.0.0/jquery.min.js">
  </script>
  <script src="http://nautstatic-10007657.file.myqcloud.com/static/css/readability.min.js" type="text/javascript">
  </script>
  <script type="text/javascript">
   $(document).ready(function() {
                 var loc = document.location;
                 var uri = {
                  spec: "http://dataunion.org/1228.html",
                  host: "http://dataunion.org",
                  prePath: "http://dataunion.org",
                  scheme: "http",
                  pathBase: "http://dataunion.org/"
                 };
    
                 var documentClone = document.cloneNode(true);
                 var article = new Readability(uri, documentClone).parse();
     
                 document.getElementById("xmain").innerHTML = article.content;
                });
  </script>
  <!-- 1466455193: Accept with keywords: (title(0.4):体系,R语言,概览,数盟,社区, topn(0.3):社区,入门,数据类型,数盟,基础学科,R语言,空间,图书,语言,数据分析,技术,面向对象,可视化,计算,文章,数学,向量,函数,编程,环境,基础知识,语法,算法,理想,极客,编程语言,核心,内核,业务知识,体系结构).-->
 </head>
 <body onload="">
  <div class="header">
   <div class="container">
    <div class="row">
     <div class="col-xs-6 col-sm-6 text-left">
      <a href="/databee">
       <img src="http://nautidea-10007657.cos.myqcloud.com/logo_white.png"/>
      </a>
      <a href="/databee">
       <p>
        数螺
       </p>
      </a>
     </div>
     <div class="hidden-xs col-sm-6 text-right">
      <p>
       致力于数据科学的推广和知识传播
      </p>
     </div>
    </div>
   </div>
  </div>
  <div class="container text-center">
   <h1>
    R语言知识体系概览
   </h1>
  </div>
  <div class="container" id="xmain">
   ﻿﻿
   <title>
    R语言知识体系概览 | 数盟社区
   </title>
   <!-- All in One SEO Pack 2.2.7.6.2 by Michael Torbert of Semper Fi Web Design[32,56] -->
   <!-- /all in one seo pack -->
   <!--
<div align="center">
<a href="http://strata.oreilly.com.cn/hadoop-big-data-cn?cmp=mp-data-confreg-home-stcn16_dataunion_pc" target="_blank"><img src="http://dataunion.org/wp-content/uploads/2016/05/stratabj.jpg"/ ></a>
</div>
-->
   <header id="header-web">
    <div class="header-main">
     <hgroup class="logo">
      <h1>
       <a href="http://dataunion.org/" rel="home" title="数盟社区">
        <img src="http://dataunion.org/wp-content/themes/yzipi/images/logo.png"/>
       </a>
      </h1>
     </hgroup>
     <!--logo-->
     <nav class="header-nav">
      <ul class="menu" id="menu-%e4%b8%bb%e8%8f%9c%e5%8d%95">
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-71" id="menu-item-71">
        <a href="http://dataunion.org/category/events" title="events">
         活动
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22457" id="menu-item-22457">
          <a href="http://dataunion.org/2016timeline">
           2016档期
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-22459" id="menu-item-22459">
          <a href="http://dataunion.org/category/parterc">
           合作会议
          </a>
         </li>
        </ul>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor menu-item-has-children menu-item-20869" id="menu-item-20869">
        <a href="http://dataunion.org/category/tech" title="articles">
         文章
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-20867" id="menu-item-20867">
          <a href="http://dataunion.org/category/tech/base" title="base">
           基础架构
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3302" id="menu-item-3302">
          <a href="http://dataunion.org/category/tech/ai" title="ai">
           人工智能
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3303" id="menu-item-3303">
          <a href="http://dataunion.org/category/tech/analysis" title="analysis">
           数据分析
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21920" id="menu-item-21920">
          <a href="http://dataunion.org/category/tech/dm">
           数据挖掘
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3314" id="menu-item-3314">
          <a href="http://dataunion.org/category/tech/viz" title="viz">
           可视化
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-3305" id="menu-item-3305">
          <a href="http://dataunion.org/category/tech/devl" title="devl">
           编程语言
          </a>
         </li>
        </ul>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-20876" id="menu-item-20876">
        <a href="http://dataunion.org/category/industry">
         行业
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-16328" id="menu-item-16328">
          <a href="http://dataunion.org/category/industry/case" title="case">
           行业应用
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2112" id="menu-item-2112">
          <a href="http://dataunion.org/category/industry/demo" title="demo">
           Demo展示
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21562" id="menu-item-21562">
          <a href="http://dataunion.org/category/industry/news">
           行业资讯
          </a>
         </li>
        </ul>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-311" id="menu-item-311">
        <a href="http://dataunion.org/category/sources" title="sources">
         资源
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-20870" id="menu-item-20870">
        <a href="http://dataunion.org/category/books" title="book">
         图书
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21363" id="menu-item-21363">
        <a href="http://dataunion.org/category/training">
         课程
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-21853" id="menu-item-21853">
        <a href="http://dataunion.org/category/jobs">
         职位
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-22050" id="menu-item-22050">
          <a href="http://dataunion.org/category/career">
           职业规划
          </a>
         </li>
        </ul>
       </li>
      </ul>
     </nav>
     <!--header-nav-->
    </div>
   </header>
   <!--header-web-->
   <div id="main">
    <div id="soutab">
     <form action="http://dataunion.org/" class="search" method="get">
     </form>
    </div>
    <div id="container">
     <nav id="mbx">
      当前位置：
      <a href="http://dataunion.org">
       首页
      </a>
      &gt;
      <a href="http://dataunion.org/category/tech">
       文章
      </a>
      &gt;
      <a href="http://dataunion.org/category/tech/devl">
       编程语言
      </a>
      &gt;  正文
     </nav>
     <!--mbx-->
     <article class="content">
      <header align="centre" class="contenttitle">
       <div class="mscc">
        <h1 class="mscctitle">
         <a href="http://dataunion.org/1228.html">
          R语言知识体系概览
         </a>
        </h1>
        <address class="msccaddress ">
         <em>
          1,416 次阅读 -
         </em>
         <a href="http://dataunion.org/category/tech/devl" rel="category tag">
          编程语言
         </a>
        </address>
       </div>
      </header>
      <div class="content-text">
       <p style="color: #4d4d4f;">
        <strong>
         前言
        </strong>
       </p>
       <p style="color: #4d4d4f;">
        最近遇到很多的程序员都想转行到数据分析，于是就开始学习R语言。总以为有了其他语言的编程背景，学习R语言就是一件很简单的事情，一味地追求速度，但不求甚解，有些同学说2周就能掌握R语言，但掌握的仅仅是R语言的语法，其实这只能算是入门。
       </p>
       <p style="color: #4d4d4f;">
        R语言的知识体系并非语法这么简单，如果都不了R的全貌，何谈学好R语言呢。本文将展示介绍R语言的知识体系结构，并告诉读者如何才能高效地学习R语言。
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         目录
        </strong>
       </p>
       <ol style="color: #4d4d4f;">
        <li>
         R的知识体系结构
        </li>
        <li>
         R语言学习
        </li>
       </ol>
       <h2 style="color: #434343;">
        1. R的知识体系结构
       </h2>
       <p style="color: #4d4d4f;">
        R语言是一门统计语言，主要用于数学建模、统计计算、数据处理、可视化 等几个方向，R语言天生就不同于其他的编程语言。R语言封装了各种基础学科的计算函数，我们在R语言编程的过程中只需要调用这些计算函数，就可以构建出面向不同领域、不同业务的、复杂的数学模型。掌握R语言的语法，仅仅是学习R语言的第一步，要学好R语言，需要你要具备基础学科能力(初等数学，高等数学，线性代数，离散数学，概率论，统计学) + 业务知识(金融，生物，互联网) + IT技术(R语法，R包，数据库，算法) 的结合。所以把眼光放长点，只有把自己的综合知识水平提升，你才真正地学好R语言。换句话说，一旦你学成了R语言，你将是不可被替代的。
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         1.1 R的知识体系结构概览
        </strong>
       </p>
       <p style="color: #4d4d4f;">
        R的知识体系结构是复杂的，要想学好R，就必须把多学科的知识综合运用，所以最大的难点不在于语言本身，而在于使用者的知识基础和综合运用的能力。
       </p>
       <p style="color: #4d4d4f;">
        首先，从宏观上让我们先看一下R的知识体系结构的全貌，然后再分别解释每个部分的细节。
       </p>
       <p style="color: #4d4d4f;">
        <a href="http://dataunion.org/wp-content/uploads/2015/01/rbase.png" style="color: #0e73b8;">
         <img src="http://dataunion.org/wp-content/uploads/2015/01/rbase.png"/>
        </a>
       </p>
       <p style="color: #4d4d4f;">
        注：此图仅仅是我对R语言的理解，不排除由于个人阅历有限，观点片面的问题。
       </p>
       <p style="color: #4d4d4f;">
        图中我将R语言知识体系结构分为3个部分：IT技术 + 业务知识 + 基础学科。
       </p>
       <ul style="color: #4d4d4f;">
        <li>
         IT技术：是计算时代必备的技术之一，R语言就是一种我们应该要掌握技术。
        </li>
        <li>
         业务知识：是市场经验和法则，不管你在什么公司，都会有自己的产品、销售、市场等，你要了解你的公司产品有什么，客户是谁，怎么才能把产品卖给你的客户。
        </li>
        <li>
         基础学科：是我们这十几年在学校学的理论知识，当初学的时候并不知道是为了什么，毕业后如果你还能掌握一些知识并实际运用，那么这将是你最有价值的竞争力。
        </li>
       </ul>
       <p style="color: #4d4d4f;">
        每个部分知识单独看都有其局限性，但如果能把知识两两结合起来，就构成了我们现在社会的各种技术创新点。
       </p>
       <ul style="color: #4d4d4f;">
        <li>
         IT技术+业务知识：创造了阿里巴巴的电子商务帝国，腾讯全生态链的社交网络。
        </li>
        <li>
         IT技术+基础学科：创造了Google搜索的神话，华尔街金融不败的帝国。
        </li>
       </ul>
       <p style="color: #4d4d4f;">
        当然，R语言只是一门计算机语言技术，不能独自承担改写历史的重任，但R语言确实给了我们很大的想像空间，让我们能动手去了解这个世界的规律，找到无穷无尽的交叉点，创造出新的帝国。
       </p>
       <p style="color: #4d4d4f;">
        如果你和我一样，都能站在这个角度来学习和使用R语言，那么我们一定可以成为并肩向前的同路人。欢迎加入我的团队，我们正在努力改变着未来。
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         1.2 R语言基础的知识
        </strong>
       </p>
       <p style="color: #4d4d4f;">
        蓝图总是宏大和美好的，具体落实也将是困难重重的。接下来，我将会梳理思路，把所有的知识点对应到可操作的文档上，希望帮助大家掌握R语言的全貌！
       </p>
       <p style="color: #4d4d4f;">
        R语言基础的知识，包括R语言的语法，R语言核心包的使用，R语言的内核编程，R语言包的开发，以及R语言的虚拟机。
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         1.2.1 R语言的语法
        </strong>
       </p>
       <p style="color: #4d4d4f;">
        语法是我们了解R语言的第一步，和所有人一样，我也在很短的时间就适应R的语法规则，数据结构，基本类型，常用函数等等。但其实R的语法上坑，远比你知道的多得多。
       </p>
       <p style="color: #4d4d4f;">
        我举个例子，看谁能准确的回答。比如，最基础的符号操作 “=”,”&lt;-“,”&lt;&lt;-” ，三者有什么区别，分别在什么时候用？不要偷偷说问题太偏了，实际根本用不到。我的代码里处处都在用这3个符号，只是你不知道而已。在学习R的时候，不要用已经掌握的C, Java, Python的经验直接去套R的语法，掉坑里的就是这些人。要重头开始学，一路上没有捷径。
       </p>
       <p style="color: #4d4d4f;">
        R语言是函数式语言，语法自由，命名自由，使用简单，这只是对于普通用户来说的。作为一个有理想的极客，怎么能只停留在语法上呢！R是完全面向对象的，你了解什么是面向对象吗？R的面向对象打破了R原有的自由，但又要兼容原有的自由语法，多么纠结的设计啊，你能体会到吗？并不是记住了R的语法，就代表掌握了R语言。里面种各坑，只有自己踩了，再自己爬出来，才是真正的成长。
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         1.2.2 R语言核心包的使用
        </strong>
       </p>
       <p style="color: #4d4d4f;">
        R语言同其他语言一样，在软件启动时，为我们提供了7个核心包，包括了众多的基础函数，如 数学计算函数，统计计算函数，日期函数，包加载函数，数据处理函数，函数操作函数，图形设备函数等。通过search()函数，可以查看到R启动时默认加载7个核心包。
       </p>
       <p>
       </p>
       <!-- Crayon Syntax Highlighter v_2.7.2_beta -->
       <div class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-576854975eee6932774055" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;">
        <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
         <span class="crayon-title">
         </span>
         <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
          <div class="crayon-button crayon-nums-button" title="切换是否显示行编号">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-plain-button" title="纯文本显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-wrap-button" title="切换自动换行">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-expand-button" title="点击展开代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-copy-button" title="复制代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-popup-button" title="在新窗口中显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
         </div>
        </div>
        <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;">
        </div>
        <div class="crayon-plain-wrap">
         <textarea class="crayon-plain print-no" data-settings="dblclick" readonly="" style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;" wrap="soft">
          &amp;gt; search()
[1] ".GlobalEnv"        "package:stats"     "package:graphics"
[4] "package:grDevices" "package:utils"     "package:datasets"
[7] "package:methods"   "Autoloads"         "package:base"
         </textarea>
        </div>
        <div class="crayon-main" style="">
         <table class="crayon-table">
          <tbody>
           <tr class="crayon-row">
            <td class="crayon-nums " data-settings="show">
             <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;">
              <div class="crayon-num" data-line="crayon-576854975eee6932774055-1">
               1
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975eee6932774055-2">
               2
              </div>
              <div class="crayon-num" data-line="crayon-576854975eee6932774055-3">
               3
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975eee6932774055-4">
               4
              </div>
              <div class="crayon-num" data-line="crayon-576854975eee6932774055-5">
               5
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975eee6932774055-6">
               6
              </div>
             </div>
            </td>
            <td class="crayon-code">
             <div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;">
              <div class="crayon-line" id="crayon-576854975eee6932774055-1">
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975eee6932774055-2">
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                gt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-e">
                search
               </span>
               <span class="crayon-sy">
                (
               </span>
               <span class="crayon-sy">
                )
               </span>
              </div>
              <div class="crayon-line" id="crayon-576854975eee6932774055-3">
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                ".GlobalEnv"
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "package:stats"
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "package:graphics"
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975eee6932774055-4">
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                4
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "package:grDevices"
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "package:utils"
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "package:datasets"
               </span>
              </div>
              <div class="crayon-line" id="crayon-576854975eee6932774055-5">
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                7
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "package:methods"
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "Autoloads"
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "package:base"
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975eee6932774055-6">
              </div>
             </div>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
       </div>
       <!-- [Format Time: 0.0076 seconds] -->
       <p>
       </p>
       <p style="color: #4d4d4f;">
        这7个核心包，就是我们构建复杂模型的基础。由于这几个核心包比较底层，很多函数都是用C语言封装的没有R的源代码，而且除了官方文档，几乎没有其他更详细的文档介绍，所以这几个核心包就是学习的门槛，不要觉得某些函数会用了就行了，背后还有更深一层意义。
       </p>
       <p style="color: #4d4d4f;">
        再问个问题，R的所有操作都是函数操作，那么“a&lt;-1:10” 语句会被解析对应什么函数？
       </p>
       <p>
       </p>
       <!-- Crayon Syntax Highlighter v_2.7.2_beta -->
       <div class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-576854975ef04793670384" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;">
        <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
         <span class="crayon-title">
         </span>
         <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
          <div class="crayon-button crayon-nums-button" title="切换是否显示行编号">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-plain-button" title="纯文本显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-wrap-button" title="切换自动换行">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-expand-button" title="点击展开代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-copy-button" title="复制代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-popup-button" title="在新窗口中显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
         </div>
        </div>
        <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;">
        </div>
        <div class="crayon-plain-wrap">
         <textarea class="crayon-plain print-no" data-settings="dblclick" readonly="" style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;" wrap="soft">
          &amp;gt; a&amp;lt;-1:10;a
 [1]  1  2  3  4  5  6  7  8  9 10
         </textarea>
        </div>
        <div class="crayon-main" style="">
         <table class="crayon-table">
          <tbody>
           <tr class="crayon-row">
            <td class="crayon-nums " data-settings="show">
             <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;">
              <div class="crayon-num" data-line="crayon-576854975ef04793670384-1">
               1
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef04793670384-2">
               2
              </div>
              <div class="crayon-num" data-line="crayon-576854975ef04793670384-3">
               3
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef04793670384-4">
               4
              </div>
             </div>
            </td>
            <td class="crayon-code">
             <div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;">
              <div class="crayon-line" id="crayon-576854975ef04793670384-1">
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef04793670384-2">
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                gt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-v">
                a
               </span>
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                lt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-o">
                -
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-cn">
                10
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-i">
                a
               </span>
              </div>
              <div class="crayon-line" id="crayon-576854975ef04793670384-3">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                2
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                3
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                4
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                5
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                6
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                7
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                8
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                9
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                10
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef04793670384-4">
              </div>
             </div>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
       </div>
       <!-- [Format Time: 0.0127 seconds] -->
       <p>
       </p>
       <p style="color: #4d4d4f;">
        答案是，”1:10″对应”seq()”，”&lt;-“对应assign()。
       </p>
       <p>
       </p>
       <!-- Crayon Syntax Highlighter v_2.7.2_beta -->
       <div class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-576854975ef0b689124040" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;">
        <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
         <span class="crayon-title">
         </span>
         <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
          <div class="crayon-button crayon-nums-button" title="切换是否显示行编号">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-plain-button" title="纯文本显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-wrap-button" title="切换自动换行">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-expand-button" title="点击展开代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-copy-button" title="复制代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-popup-button" title="在新窗口中显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
         </div>
        </div>
        <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;">
        </div>
        <div class="crayon-plain-wrap">
         <textarea class="crayon-plain print-no" data-settings="dblclick" readonly="" style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;" wrap="soft">
          &amp;gt; assign('b',seq(1:10));b
 [1]  1  2  3  4  5  6  7  8  9 10
         </textarea>
        </div>
        <div class="crayon-main" style="">
         <table class="crayon-table">
          <tbody>
           <tr class="crayon-row">
            <td class="crayon-nums " data-settings="show">
             <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;">
              <div class="crayon-num" data-line="crayon-576854975ef0b689124040-1">
               1
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef0b689124040-2">
               2
              </div>
              <div class="crayon-num" data-line="crayon-576854975ef0b689124040-3">
               3
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef0b689124040-4">
               4
              </div>
             </div>
            </td>
            <td class="crayon-code">
             <div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;">
              <div class="crayon-line" id="crayon-576854975ef0b689124040-1">
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef0b689124040-2">
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                gt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-e">
                assign
               </span>
               <span class="crayon-sy">
                (
               </span>
               <span class="crayon-s">
                'b'
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-e">
                seq
               </span>
               <span class="crayon-sy">
                (
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-cn">
                10
               </span>
               <span class="crayon-sy">
                )
               </span>
               <span class="crayon-sy">
                )
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-i">
                b
               </span>
              </div>
              <div class="crayon-line" id="crayon-576854975ef0b689124040-3">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                2
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                3
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                4
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                5
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                6
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                7
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                8
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                9
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                10
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef0b689124040-4">
              </div>
             </div>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
       </div>
       <!-- [Format Time: 0.0108 seconds] -->
       <p>
       </p>
       <p style="color: #4d4d4f;">
        掌握这种对应关系的意义在于，因为R是解释型语言，我们可以通过传递一个函数A的句柄，让其他的函数B动态调用这个函数A，这就是动态语言中的闭包特性的使用思路。在Javascript中，已经被广泛使用了，但在R语言中，却只有核心包的一些函数在使用这种语法。在R语言中，这种需要有计算机背景知识的地方还有很多，特别是在考虑如何提升R性能的部分。所以，不要太轻易就说自己掌握了R语言，多想想如何才能把其他语言的基础带到R语言的世界里。
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         1.2.3 R语言的内核编程
        </strong>
       </p>
       <p style="color: #4d4d4f;">
        R语言的内核编程，又是一个比较复杂的计算机学科的问题。R的内核编程应该包括哪些内容呢，除了刚才说的R的语法和R的核心包，还有面向对象编程，量向化计算，特殊数据类型，环境空间等。我的第二本书《R的极客理想-高级开发篇》将会重点介绍这部分的内容。
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         面向对象编程
        </strong>
        ，是一种对现实世界理解和抽象的方法，主要用于解决复杂问题的设计及实现。在Java的世界里，从2003年开始我接触Java的时候，社区就已经在聊面向对象的程序设计了。对于R语言来说，直到2011年发布的2.14版本，才最终有了RC类型的面向对象实现。面向对象的成熟，标志着R已经具备了构建复杂大型应用的能力，但如何真正地把面向对象用好，似乎也并不是统计人擅长的。有能力写出像Hadley Wickham面向对象代码的人，在R的圈子里，实在是极少数的。
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         量向化计算
        </strong>
        ，是R语言特有的一种并行计算方式。在R中，向量是R的基本数据类型(vector)，当你对一个向量进行操作时，程序会对向量中每个元素进行分别计算，计算结果以向量的形式返回。比如，最常见的两个等长的向量相加。
       </p>
       <p>
       </p>
       <!-- Crayon Syntax Highlighter v_2.7.2_beta -->
       <div class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-576854975ef14002595048" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;">
        <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
         <span class="crayon-title">
         </span>
         <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
          <div class="crayon-button crayon-nums-button" title="切换是否显示行编号">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-plain-button" title="纯文本显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-wrap-button" title="切换自动换行">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-expand-button" title="点击展开代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-copy-button" title="复制代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-popup-button" title="在新窗口中显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
         </div>
        </div>
        <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;">
        </div>
        <div class="crayon-plain-wrap">
         <textarea class="crayon-plain print-no" data-settings="dblclick" readonly="" style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;" wrap="soft">
          &amp;gt; 1:10+10:1
 [1] 11 11 11 11 11 11 11 11 11 11
         </textarea>
        </div>
        <div class="crayon-main" style="">
         <table class="crayon-table">
          <tbody>
           <tr class="crayon-row">
            <td class="crayon-nums " data-settings="show">
             <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;">
              <div class="crayon-num" data-line="crayon-576854975ef14002595048-1">
               1
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef14002595048-2">
               2
              </div>
              <div class="crayon-num" data-line="crayon-576854975ef14002595048-3">
               3
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef14002595048-4">
               4
              </div>
             </div>
            </td>
            <td class="crayon-code">
             <div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;">
              <div class="crayon-line" id="crayon-576854975ef14002595048-1">
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef14002595048-2">
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                gt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-cn">
                10
               </span>
               <span class="crayon-o">
                +
               </span>
               <span class="crayon-cn">
                10
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-cn">
                1
               </span>
              </div>
              <div class="crayon-line" id="crayon-576854975ef14002595048-3">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                11
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                11
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                11
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                11
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                11
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                11
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                11
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                11
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                11
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                11
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef14002595048-4">
              </div>
             </div>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
       </div>
       <!-- [Format Time: 0.0016 seconds] -->
       <p>
       </p>
       <p style="color: #4d4d4f;">
        向量化计算，在R中有很广泛的应用场景，基本可以取代循环计算，高效的完成计算任务。我们定义两个向量，先相加再求和，run1()函数用向量化计算实现，run2()用循环方法实现。
       </p>
       <p>
       </p>
       <!-- Crayon Syntax Highlighter v_2.7.2_beta -->
       <div class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-576854975ef1a659054083" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;">
        <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
         <span class="crayon-title">
         </span>
         <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
          <div class="crayon-button crayon-nums-button" title="切换是否显示行编号">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-plain-button" title="纯文本显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-wrap-button" title="切换自动换行">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-expand-button" title="点击展开代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-copy-button" title="复制代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-popup-button" title="在新窗口中显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
         </div>
        </div>
        <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;">
        </div>
        <div class="crayon-plain-wrap">
         <textarea class="crayon-plain print-no" data-settings="dblclick" readonly="" style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;" wrap="soft">
          &amp;gt; a&amp;lt;-1:100000
&amp;gt; b&amp;lt;-100000:1

&amp;gt; run1&amp;lt;-function(){  # 向量化计算
+   sum(as.numeric(a+b))
+ }
 
&amp;gt; run2&amp;lt;-function(){  # 循环计算
+   c2&amp;lt;-0
+   for(i in 1:length(a)){
+     c2&amp;lt;-a[i]+b[i]+c2
+   }
+   c2
+ }

&amp;gt; system.time(run1())
用户 系统 流逝 
   0    0    0 

&amp;gt; system.time(run2())
用户 系统 流逝 
0.14 0.00 0.14
         </textarea>
        </div>
        <div class="crayon-main" style="">
         <table class="crayon-table">
          <tbody>
           <tr class="crayon-row">
            <td class="crayon-nums " data-settings="show">
             <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;">
              <div class="crayon-num" data-line="crayon-576854975ef1a659054083-1">
               1
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef1a659054083-2">
               2
              </div>
              <div class="crayon-num" data-line="crayon-576854975ef1a659054083-3">
               3
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef1a659054083-4">
               4
              </div>
              <div class="crayon-num" data-line="crayon-576854975ef1a659054083-5">
               5
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef1a659054083-6">
               6
              </div>
              <div class="crayon-num" data-line="crayon-576854975ef1a659054083-7">
               7
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef1a659054083-8">
               8
              </div>
              <div class="crayon-num" data-line="crayon-576854975ef1a659054083-9">
               9
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef1a659054083-10">
               10
              </div>
              <div class="crayon-num" data-line="crayon-576854975ef1a659054083-11">
               11
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef1a659054083-12">
               12
              </div>
              <div class="crayon-num" data-line="crayon-576854975ef1a659054083-13">
               13
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef1a659054083-14">
               14
              </div>
              <div class="crayon-num" data-line="crayon-576854975ef1a659054083-15">
               15
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef1a659054083-16">
               16
              </div>
              <div class="crayon-num" data-line="crayon-576854975ef1a659054083-17">
               17
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef1a659054083-18">
               18
              </div>
              <div class="crayon-num" data-line="crayon-576854975ef1a659054083-19">
               19
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef1a659054083-20">
               20
              </div>
              <div class="crayon-num" data-line="crayon-576854975ef1a659054083-21">
               21
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef1a659054083-22">
               22
              </div>
              <div class="crayon-num" data-line="crayon-576854975ef1a659054083-23">
               23
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef1a659054083-24">
               24
              </div>
             </div>
            </td>
            <td class="crayon-code">
             <div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;">
              <div class="crayon-line" id="crayon-576854975ef1a659054083-1">
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef1a659054083-2">
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                gt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-v">
                a
               </span>
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                lt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-o">
                -
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-cn">
                100000
               </span>
              </div>
              <div class="crayon-line" id="crayon-576854975ef1a659054083-3">
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                gt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-v">
                b
               </span>
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                lt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-o">
                -
               </span>
               <span class="crayon-cn">
                100000
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-cn">
                1
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef1a659054083-4">
              </div>
              <div class="crayon-line" id="crayon-576854975ef1a659054083-5">
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                gt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-v">
                run1
               </span>
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                lt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-o">
                -
               </span>
               <span class="crayon-t">
                function
               </span>
               <span class="crayon-sy">
                (
               </span>
               <span class="crayon-sy">
                )
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-p">
                # 向量化计算
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef1a659054083-6">
               <span class="crayon-o">
                +
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-e">
                sum
               </span>
               <span class="crayon-sy">
                (
               </span>
               <span class="crayon-st">
                as
               </span>
               <span class="crayon-sy">
                .
               </span>
               <span class="crayon-e">
                numeric
               </span>
               <span class="crayon-sy">
                (
               </span>
               <span class="crayon-v">
                a
               </span>
               <span class="crayon-o">
                +
               </span>
               <span class="crayon-v">
                b
               </span>
               <span class="crayon-sy">
                )
               </span>
               <span class="crayon-sy">
                )
               </span>
              </div>
              <div class="crayon-line" id="crayon-576854975ef1a659054083-7">
               <span class="crayon-o">
                +
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef1a659054083-8">
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-576854975ef1a659054083-9">
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                gt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-v">
                run2
               </span>
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                lt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-o">
                -
               </span>
               <span class="crayon-t">
                function
               </span>
               <span class="crayon-sy">
                (
               </span>
               <span class="crayon-sy">
                )
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-p">
                # 循环计算
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef1a659054083-10">
               <span class="crayon-o">
                +
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-v">
                c2
               </span>
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                lt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-o">
                -
               </span>
               <span class="crayon-cn">
                0
               </span>
              </div>
              <div class="crayon-line" id="crayon-576854975ef1a659054083-11">
               <span class="crayon-o">
                +
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-st">
                for
               </span>
               <span class="crayon-sy">
                (
               </span>
               <span class="crayon-i">
                i
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-st">
                in
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-e">
                length
               </span>
               <span class="crayon-sy">
                (
               </span>
               <span class="crayon-v">
                a
               </span>
               <span class="crayon-sy">
                )
               </span>
               <span class="crayon-sy">
                )
               </span>
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef1a659054083-12">
               <span class="crayon-o">
                +
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-v">
                c2
               </span>
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                lt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-o">
                -
               </span>
               <span class="crayon-v">
                a
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-v">
                i
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-o">
                +
               </span>
               <span class="crayon-v">
                b
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-v">
                i
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-o">
                +
               </span>
               <span class="crayon-v">
                c2
               </span>
              </div>
              <div class="crayon-line" id="crayon-576854975ef1a659054083-13">
               <span class="crayon-o">
                +
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef1a659054083-14">
               <span class="crayon-o">
                +
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-v">
                c2
               </span>
              </div>
              <div class="crayon-line" id="crayon-576854975ef1a659054083-15">
               <span class="crayon-o">
                +
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef1a659054083-16">
              </div>
              <div class="crayon-line" id="crayon-576854975ef1a659054083-17">
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                gt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-v">
                system
               </span>
               <span class="crayon-sy">
                .
               </span>
               <span class="crayon-e">
                time
               </span>
               <span class="crayon-sy">
                (
               </span>
               <span class="crayon-e">
                run1
               </span>
               <span class="crayon-sy">
                (
               </span>
               <span class="crayon-sy">
                )
               </span>
               <span class="crayon-sy">
                )
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef1a659054083-18">
               用户
               <span class="crayon-h">
               </span>
               系统
               <span class="crayon-h">
               </span>
               流逝
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-576854975ef1a659054083-19">
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                0
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                0
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                0
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef1a659054083-20">
              </div>
              <div class="crayon-line" id="crayon-576854975ef1a659054083-21">
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                gt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-v">
                system
               </span>
               <span class="crayon-sy">
                .
               </span>
               <span class="crayon-e">
                time
               </span>
               <span class="crayon-sy">
                (
               </span>
               <span class="crayon-e">
                run2
               </span>
               <span class="crayon-sy">
                (
               </span>
               <span class="crayon-sy">
                )
               </span>
               <span class="crayon-sy">
                )
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef1a659054083-22">
               用户
               <span class="crayon-h">
               </span>
               系统
               <span class="crayon-h">
               </span>
               流逝
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-576854975ef1a659054083-23">
               <span class="crayon-cn">
                0.14
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                0.00
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                0.14
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef1a659054083-24">
              </div>
             </div>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
       </div>
       <!-- [Format Time: 0.0140 seconds] -->
       <p>
       </p>
       <p style="color: #4d4d4f;">
        通过运行程序，我们可以清楚地看出，向量化计算要比循环快。当算法越复杂数据量越大的时候，计算的时间差距会越明显的。R的编程中的一条法则就是用向量计算代替所有的循环计算。
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         特殊数据类型
        </strong>
        ，R语言中除了那些基本的数据类型，还有一些高级的数据类型，并不是不常用，而是你不知道。
       </p>
       <p style="color: #4d4d4f;">
        S3类型，S4类型，RC类型分别对应R语言支持的三种面向对象编程的数据结构。
       </p>
       <p style="color: #4d4d4f;">
        环境类型(environment)，由内核定义的一个数据结构，由一系列的、有层次关系的框架(frame)组成，每个环境对应一个框架，用来区别不同的运行时空间(scope)。
       </p>
       <p style="color: #4d4d4f;">
        可能还有我不知道的类型…(请发现的同学通知我！)
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         环境空间
        </strong>
        ，在进行R包开发时，是必备的一个知识点。每个环境空间都是环境类型的一个实例。每个R包都会被加载到一个环境空间中，形成有层次关系的、可调用的空间结构。
       </p>
       <p style="color: #4d4d4f;">
        我们定义的函数和变量，都会存在于R的环境空间中，通过ls()就可以看到当前环境空间中的这些变量，比如，刚才量向化计算定义的变量和函数。
       </p>
       <p>
       </p>
       <!-- Crayon Syntax Highlighter v_2.7.2_beta -->
       <div class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-576854975ef24410336494" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;">
        <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
         <span class="crayon-title">
         </span>
         <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
          <div class="crayon-button crayon-nums-button" title="切换是否显示行编号">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-plain-button" title="纯文本显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-wrap-button" title="切换自动换行">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-expand-button" title="点击展开代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-copy-button" title="复制代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-popup-button" title="在新窗口中显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
         </div>
        </div>
        <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;">
        </div>
        <div class="crayon-plain-wrap">
         <textarea class="crayon-plain print-no" data-settings="dblclick" readonly="" style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;" wrap="soft">
          &amp;gt; ls()
[1] "a"    "b"    "run1" "run2"
         </textarea>
        </div>
        <div class="crayon-main" style="">
         <table class="crayon-table">
          <tbody>
           <tr class="crayon-row">
            <td class="crayon-nums " data-settings="show">
             <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;">
              <div class="crayon-num" data-line="crayon-576854975ef24410336494-1">
               1
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef24410336494-2">
               2
              </div>
              <div class="crayon-num" data-line="crayon-576854975ef24410336494-3">
               3
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef24410336494-4">
               4
              </div>
             </div>
            </td>
            <td class="crayon-code">
             <div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;">
              <div class="crayon-line" id="crayon-576854975ef24410336494-1">
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef24410336494-2">
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                gt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-e">
                ls
               </span>
               <span class="crayon-sy">
                (
               </span>
               <span class="crayon-sy">
                )
               </span>
              </div>
              <div class="crayon-line" id="crayon-576854975ef24410336494-3">
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "a"
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "b"
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "run1"
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "run2"
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef24410336494-4">
              </div>
             </div>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
       </div>
       <!-- [Format Time: 0.0011 seconds] -->
       <p>
       </p>
       <p style="color: #4d4d4f;">
        除了我们自己定义的变量和函数，环境空间中还有很多其他的变量和函数，比如sum(), length(), system.time()等，这些函数我们可以直接使用，但是它们并不在当前环境空间中，所以直接用ls()是查看不到的。当我们切换到base的环境空间时，就可以找到sum()的函数定义了。
       </p>
       <p>
       </p>
       <!-- Crayon Syntax Highlighter v_2.7.2_beta -->
       <div class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-576854975ef2b489149327" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;">
        <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
         <span class="crayon-title">
         </span>
         <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
          <div class="crayon-button crayon-nums-button" title="切换是否显示行编号">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-plain-button" title="纯文本显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-wrap-button" title="切换自动换行">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-expand-button" title="点击展开代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-copy-button" title="复制代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-popup-button" title="在新窗口中显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
         </div>
        </div>
        <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;">
        </div>
        <div class="crayon-plain-wrap">
         <textarea class="crayon-plain print-no" data-settings="dblclick" readonly="" style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;" wrap="soft">
          &amp;gt; ls(pattern="^sum$",envir=baseenv())
[1] "sum"
         </textarea>
        </div>
        <div class="crayon-main" style="">
         <table class="crayon-table">
          <tbody>
           <tr class="crayon-row">
            <td class="crayon-nums " data-settings="show">
             <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;">
              <div class="crayon-num" data-line="crayon-576854975ef2b489149327-1">
               1
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef2b489149327-2">
               2
              </div>
              <div class="crayon-num" data-line="crayon-576854975ef2b489149327-3">
               3
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-576854975ef2b489149327-4">
               4
              </div>
             </div>
            </td>
            <td class="crayon-code">
             <div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;">
              <div class="crayon-line" id="crayon-576854975ef2b489149327-1">
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef2b489149327-2">
               <span class="crayon-o">
                &amp;
               </span>
               <span class="crayon-v">
                gt
               </span>
               <span class="crayon-sy">
                ;
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-e">
                ls
               </span>
               <span class="crayon-sy">
                (
               </span>
               <span class="crayon-v">
                pattern
               </span>
               <span class="crayon-o">
                =
               </span>
               <span class="crayon-s">
                "^sum$"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-v">
                envir
               </span>
               <span class="crayon-o">
                =
               </span>
               <span class="crayon-e">
                baseenv
               </span>
               <span class="crayon-sy">
                (
               </span>
               <span class="crayon-sy">
                )
               </span>
               <span class="crayon-sy">
                )
               </span>
              </div>
              <div class="crayon-line" id="crayon-576854975ef2b489149327-3">
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "sum"
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-576854975ef2b489149327-4">
              </div>
             </div>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
       </div>
       <!-- [Format Time: 0.0012 seconds] -->
       <p>
       </p>
       <p style="color: #4d4d4f;">
        R语言内核编程，如同其他语言一样，有很多的知识细节，并不是只有我提到的这几点。但由于缺少文档，同时R核心技术的不普及，所以知道的人就不多，会用的人更少。我也在每天探索，期待发现更多的秘密。
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         1.2.4 R语言包的开发
        </strong>
       </p>
       <p style="color: #4d4d4f;">
        R包的开发，是R语言编程中比较难的，又不得不面对的问题，不仅要把上文中所提到的各种R语言技术综合运用在一起，还要符合R包的开发规范，并用Latex写好文档，最后提交给CRAN发布。技术问题虽然难，花时间还是可以解决的，但想要在CRAN上发布，那就只能用“难于上青天”来形容了。R语言发展了20多年，只有5000多个包在CRAN上发布，审核不是一般严格啊！我写的gridgame游戏包和chinaWeather天气包，改了很多次，都没能通过，都到了要放弃的边缘了。
       </p>
       <p style="color: #4d4d4f;">
        换个角度想，只有审核严格才能保证用户在安装第三方的R包时候不会出错。由于CRAN的审核过于严格，Hadley Wickham也受不了了，又开发了devtools包，不仅提供了简化R包的开发的工具函数，还支持Github社区发布。这样就可以脱离CRAN的束缚，以个人的名义发布各种奇思妙想的R包，甚至是“不误正业”的R包。嘿嘿！！
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         1.2.5 R语言的虚拟机
        </strong>
       </p>
       <p style="color: #4d4d4f;">
        终于到我不熟悉话题了，已我3年多R语言使用经验来说，还碰不到R语言的虚拟机。不过，网上看到很多高手在生产环境都会重新编译R软件，比如 用OpenBLAS加速R的矩阵运算，在虚拟机层实现矩阵的并行化计算，也有用GPU实现矩阵并行计算的；还有牛人把R实现的各种算法，都用C++重新实现，然后通过Rcpp封装，直接与R的虚拟机进行连接调用。
       </p>
       <p style="color: #4d4d4f;">
        我看着各种大神走远不送了，希望他们把虚拟机优化好了，免费发布个补丁包什么的。
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         1.3 R语言的第三方包
        </strong>
       </p>
       <p style="color: #4d4d4f;">
        R语言的第三方包，主要包括了在CRAN上的5000多个第三方包，以及其他社区的R包，这些包在各种领域中都发挥着重要的作用。在
        <a href="http://onbook.me/book" style="color: #0e73b8;" target="_blank">
         《R的极客理想-工具篇》
        </a>
        一书中，我介绍了30多个包的使用，包括 时间序列包(zoo, xts, xtsExtra)，性能监控包(memoise, profr, lineprof)，R跨平台通信包(Rserve, Rsession, rJava)， R服务器包(Rserve, RSclient, FastRWeb, Websocket)，数据库访问包(RMySQL, rmongodb, rredis, RCassandra, RHive), Hadoop操作包(rhdfs, rmr2, rhbase)等。
       </p>
       <p style="color: #4d4d4f;">
        还有很多常用的包，比如 数据处理包(lubridate, plyr, reshape2, stringr, formatR, mcmc)，机器学习包(nnet, rpart, tree, party, lars, boost, e1071, BayesTree, gafit, arules)，可视化包(ggplot2, lattice, googleVis)，地图包(ggmap, RgoogleMaps, rworldmap) 等。
       </p>
       <p style="color: #4d4d4f;">
        R语言对于金融也有很好的支持，时间序列包(zoo, xts, chron, its, timeDate), 金融分析(quantmod, RQuantLib, portfolio, PerformanceAnalytics, TTR, sde, YieldCurve), 风险管理(parma, evd, evdbayes, evir, extRemes, ismev) 等。同时，我正在量化投资的创业中，R语言作为是系统架构中的算法引擎在最核心的位置，R正在承担着最有价值的业务，在后续的《R的极客理想-量化投资篇》一书中，我将会完整的介绍R语言在我的量化投资系统中的运用。
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         1.4 数学的基础知识
        </strong>
       </p>
       <p style="color: #4d4d4f;">
        数学的基础知识，主要包括初等数学，高等数学，线性代数，概率论，统计学等。我们曾在大学中学过的各种数学，那些不知道有什么用，只为考试而学的数学，是能真正决定R语言掌握深度的基础知识。
       </p>
       <p style="color: #4d4d4f;">
        当R语言普及以后，变成大众话的编程语言，入门会越来越容易，第三方包的调用会越来越简单，最后就是拼基础学科功底了，数学就是对所有人来说最难的基础学科。
       </p>
       <ul style="color: #4d4d4f;">
        <li>
         初等数学，中国人一直都在强调数学是我们的优势，比老外强很多，其实强的部分仅限于初等数学，加法口诀和乘法口诀让我们可以口算100以内的四则运算。
        </li>
        <li>
         高等数学，大学里挂科最多的一门课，那种照本宣科的教学方法，完全不知所谓。至到遇到了R，我才恍悟 为什么最小二乘法能进行最优化的计算。重新捡起高数，是学R的必经之路。
        </li>
        <li>
         线性代数，直到读完了Google的PageRank论文的N年后，自己才想明白，原来矩阵可以处理海量数据的计算，实现分步式算法与单机算法的一致性。
        </li>
        <li>
         概率论，通过R语言进行各种分步的随机实验，并利用概率密度曲线函数应用到实际的业务中，才让我理解概率才是可以衡量客观事件发生的指标。
        </li>
        <li>
         统计学，通过R语言我们可以很简单的构建各种统计模型，利用Bayes分别器判断垃圾邮件，利用回归模型预测未来的房价。
        </li>
       </ul>
       <p style="color: #4d4d4f;">
        是R语言能让我切身地感受到，数学的基础知识在我们实际生活中的运用；也是R语言拉近了学术界和工业界的距离。如果能把我们从小到大学到的知识串起来，我想每个人都会具备与众不同的知识结构，将会在各行各业实现伟大的创新。
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         1.5 业务知识
        </strong>
       </p>
       <p style="color: #4d4d4f;">
        业务知识涉及的面非常广，每个人都应该具备自身所处行业的知识，并结合R语言擅长的领域，发现新的机会。R语言擅长的领域包括 统计分析、金融分析、数据挖掘、互联网、生物信息学、生物制药、全球地理科学、数据可视化等。
       </p>
       <p style="color: #4d4d4f;">
        我在软件和互联网行业呆了8年，亲身经历了两个行业的高速发展和变迁。技术一波又一波，每年都有新的主题，一路跟下来的人越来越少，虽然新鲜的血液不断补充着，但能力和经验却远达不到要求，被市场的浮躁扰动着。近些年，中国的创业公司的成功，少有技术创新，大都是商业模式创新和资本运作的成功。
       </p>
       <p style="color: #4d4d4f;">
        面对着中国资本市场，掌握好业务的知识，就是找到了赚钱的法宝。当业务成熟，在大家都懂得游戏规则后，竞争就会变得异常激烈了，像电商，团购，旅游，酒店，游戏 都是如此。新领域新业务，才是值得80后90后年轻人奋斗的方向。如火如荼的O2O、互联网金融、物联网、机器人，也许正是明年的爆发点。如果你又懂技术又懂业务，学习又好，你将是下一个帝国的创造者。
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         1.6 跨学科的综合运用能力
        </strong>
       </p>
       <p style="color: #4d4d4f;">
        再次强调，只要把多种学科的知识综合运用，不仅成为R语言的一代高手，更能实现自我的价值。
       </p>
       <ul style="color: #4d4d4f;">
        <li>
         当IT技术与业务知识完美结合，你会在新兴的市场的找到机会。一旦市场成熟后，业务竞争就会变成资本竞争，机会将不复存在。
        </li>
        <li>
         当IT技术与基础学科相结合，你可以通过科技创新，建立技术壁垒，保持技术优势直到成为行业老大。
        </li>
        <li>
         当IT技术、业务知识、基础学科，三者同时具备时，那么你将是不可被替代的。只要找到属于你的团队，研发出自己的产品，推广给你的用户，你就已经成功了！
        </li>
       </ul>
       <p style="color: #4d4d4f;">
        R语言可以从IT的角度，帮助你实现成功，同时你的成功也将是R语言的成功！
       </p>
       <h2 style="color: #434343;">
        2. R语言学习
       </h2>
       <p style="color: #4d4d4f;">
        花了很大的篇幅，终于把我理解的R语言知识体系解释清楚了，写着写着都快跑题了。那么接下来，我们应该如何高效的学习R语言呢？有句话要说在前头，学习是艰苦的，没有捷径可言，如果你想成功，那么更要面对苦中之苦。正确的学习方法，可以让我们少走弯路，学习别人的经验，会让我们加速成长。
       </p>
       <p style="color: #4d4d4f;">
        通过上文中对跨学科知识体系的描述，我想大家都应该明白了，要想学好R，最大的难点不在于语言本身，而在于使用者的知识基础和综合运用的能力。当然，综合运用是要以良好的基础知识为前提的，先抛开业务知识和基础学科的知识不说，只谈IT技术，应该要掌握哪些知识呢？
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         2.1 IT基础知识
        </strong>
       </p>
       <p style="color: #4d4d4f;">
        对于R语言本身来说，我们需要掌握R语言基础的知识，包括R的语法，R核心包的使用，R的内核编程，R包的开发，以及业务相关R的第三方包的使用。
       </p>
       <p style="color: #4d4d4f;">
        如果你在学习R语言之前，已经有了很多的Java, Python等编程语言的经验，那么这将帮助你能很快熟悉R语言，你需要再补充一些数据分析和数据挖掘算法的知识，就能马上用在实际的工作中了。
       </p>
       <p style="color: #4d4d4f;">
        如果你之前是SAS或Matlab数据科学家，那你只需要熟悉R的编程语法和第三方R包，就能用R来完成SAS和Matlab的所有任务。
       </p>
       <p style="color: #4d4d4f;">
        如果是BI程序员，平时工作经常有处理数据和可视化的任务，那么你可以边学R边补充一些统计的知识，从无味ETL过程中发现数据的价值。
       </p>
       <p style="color: #4d4d4f;">
        如果你是一名在读的统计学生，R语言将帮助你把书本上枯燥知识程序化，在学习过程中，就能发现社会的规律。
       </p>
       <p style="color: #4d4d4f;">
        如果你一直在用Excel并抱怨功能远远不够的时候，试一下R语言，你的想法很快就会变成你财富的源泉。
       </p>
       <p style="color: #4d4d4f;">
        如果你是一名宽客(Quant)，还不懂R语言的话，那么你很快就会被市场淘汰的。
       </p>
       <p style="color: #4d4d4f;">
        如果你是一名Hadoop算法工程师，用Java写一个MR算法通常要好几千行，你可试试用RHadoop，十分之一的代码行就可以完成同样的事情。
       </p>
       <p style="color: #4d4d4f;">
        …
       </p>
       <p style="color: #4d4d4f;">
        R语言可以与各种技术、各种思路相结合，让R语言和你已掌握的知识进行碰撞，你就会变得和别人不一样。
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         2.2 R语言中文图书
        </strong>
       </p>
       <p style="color: #4d4d4f;">
        记得 邓一硕 写过一篇”
        <a href="http://yishuo.org/r/2012/01/19/how-to-learn-r-by-reading-books.html" style="color: #0e73b8;" target="_blank">
         R语言书籍的学习路线图
        </a>
        “的文章，很有参考意义。文章分别介绍了R语言的初级入门、高级入门、绘图与可视化、计量经济学、时间序列分析和金融等内容，涉及到30多本R语言图书和小册子，但大部分是英文的。
       </p>
       <p style="color: #4d4d4f;">
        <a href="http://dataunion.org/wp-content/uploads/2015/01/rbooks.png" style="color: #0e73b8;">
         <img src="http://dataunion.org/wp-content/uploads/2015/01/rbooks.png"/>
        </a>
       </p>
       <p style="color: #4d4d4f;">
        随着时间的推移，这两年R语言又增加了好多本新书，中文图书也慢慢地多了起来。对于不同层次的R语言用户，也有了市场细分。入门的朋友可以从
        <a href="http://item.jd.com/11243704.html" style="color: #0e73b8;" target="_blank">
         《R语言编程艺术》
        </a>
        开始学习；有一定R的基础的朋友可以阅读
        <a href="http://item.jd.com/11144224.html" style="color: #0e73b8;" target="_blank">
         《R语言实战》
        </a>
        ；需要扩展知识面的朋友可以阅读
        <a href="http://item.jd.com/11524750.html" style="color: #0e73b8;" target="_blank">
         《R的极客理想-工具篇》
        </a>
        ；在掌握了各种R的入门技术后，高级的R语言开发者可以阅读《R的极客理想-高级开发篇》(即将出版)；用R做可视化的朋友，可以阅读
        <a href="http://item.jd.com/11228891.html" style="color: #0e73b8;" target="_blank">
         《ggplot2:数据分析与图形艺术》
        </a>
        ；正在学习统计学的朋友，可以阅读
        <a href="http://item.jd.com/10079026.html" style="color: #0e73b8;" target="_blank">
         《统计建模与R软件》
        </a>
        ；准备用R做金融的朋友，可以阅读
        <a href="http://item.jd.com/10490828.html" style="color: #0e73b8;" target="_blank">
         《时间序列分析及应用(R语言)原书第2版》
        </a>
        和
        <a href="http://item.jd.com/11336079.html" style="color: #0e73b8;" target="_blank">
         《金融数据分析导论(基于R语言)》
        </a>
        。
       </p>
       <p style="color: #4d4d4f;">
        以上推荐的图书，笔者都亲自读过，予以品质保证。此图书列表将不定期更新，把我读到的好书分享给大家！
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         2.3 R语言中文社区
        </strong>
       </p>
       <p style="color: #4d4d4f;">
        除了图书，中文的R语言社区和个人博客也在蓬勃发展。
       </p>
       <ul style="color: #4d4d4f;">
        <li>
         <a href="http://cos.name/" style="color: #0e73b8;" target="_blank">
          统计之都
         </a>
         ，中国大陆最权威的R语言组织，不仅积累了大量高质量的R语言文章，并主办了七届中国R语言会议。统计之都团队成员，还参与翻译了《R语言编程艺术》、《R语言实战》、《ggplot2:数据分析与图形艺术》、《R语言核心技术手册(第2版)》、《R数据可视化手册》、《R语言统计入门(第2版)》等多本图书。
        </li>
        <li>
         <a href="http://f.dataguru.cn/forum-58-1.html" style="color: #0e73b8;" target="_blank">
          炼数成金论坛
         </a>
         ，以数据分析为主题，设有R语言板块，提供在线的R语言入门培训，黄志洪老师算法讲解超一流。
        </li>
        <li>
         <a href="http://bbs.pinggu.org/forum-69-1.html" style="color: #0e73b8;" target="_blank">
          人大经济论坛
         </a>
         ，以经管教育为主题，设有R语言板块，以线下培训为主。
        </li>
       </ul>
       <p style="color: #4d4d4f;">
        <strong>
         2.4 R语言中文博客
        </strong>
       </p>
       <ul style="color: #4d4d4f;">
        <li>
         <a href="http://blog.fens.me/series-r/" style="color: #0e73b8;" target="_blank">
          笔者的个人博客-粉丝日志
         </a>
         ，原创了大量的R语言技术实战文章，包括 R的极客理想系列文章、RHadoop实践系列文章、R利剑NoSQL系列文章 ，并出版图书《R的极客理想》系列图书。
        </li>
        <li>
         <a href="http://yihui.name/" style="color: #0e73b8;" target="_blank">
          谢益辉个人博客
         </a>
         ，统计之都创始人，现任RStudio公司程序员，博客中主要包括各种有趣的技术和吐槽文章。
        </li>
        <li>
         <a href="http://www.bjt.name/" style="color: #0e73b8;" target="_blank">
          刘思喆个人博客-贝吉塔行星
         </a>
         ，现任京东推荐算法经理，博客中主要包括R语言企业级应用的文章。
        </li>
        <li>
         <a href="http://jliblog.com/" style="color: #0e73b8;" target="_blank">
          李舰个人博客
         </a>
         ，现任Mango Solution中国区负责人，博客中主要包括R语言建模的文章。
        </li>
        <li>
         <a href="http://yishuo.org/" style="color: #0e73b8;" target="_blank">
          邓一硕的个人博客-格物堂
         </a>
         ，博客中主要包括的R语言金融数据分析的文章。
        </li>
        <li>
         <a href="http://www.wentrue.net/" style="color: #0e73b8;" target="_blank">
          阿稳的个人博客-不周山
         </a>
         (翻墙)，豆瓣算法经理，博客中主要包括R语言并行技术的文章。
        </li>
       </ul>
       <p style="color: #4d4d4f;">
        最后，祝大家把R语言学好用好，在各自的领域中找到创新的突破口，实现自我价值，然后反馈给R语言社区，加速R的壮大发展。祝大家中秋节快乐。
       </p>
       <p style="color: #4d4d4f;">
        <strong>
         注：本文将做为《R的极客理想-高级开发篇》一书的开篇文章。
        </strong>
       </p>
       <p>
        <a href="http://blog.fens.me/series-r/" style="color: #0e73b8;" target="_blank" title="R的极客理想系列文章">
         R的极客理想系列文章
        </a>
        ，涵盖了R的思想，使用，工具，创新等的一系列要点，以我个人的学习和体验去诠释R的强大。
       </p>
       <p>
        R语言作为统计学一门语言，一直在小众领域闪耀着光芒。直到大数据的爆发，R语言变成了一门炙手可热的数据分析的利器。随着越来越多的工程背景的人的加入，R语言的社区在迅速扩大成长。现在已不仅仅是统计领域，教育，银行，电商，互联网….都在使用R语言。
       </p>
       <p>
        要成为有理想的极客，我们不能停留在语法上，要掌握牢固的数学，概率，统计知识，同时还要有创新精神，把R语言发挥到各个领域。让我们一起动起来吧，开始R的极客理想。
       </p>
       <p>
        <strong>
         关于作者：
        </strong>
       </p>
       <ul>
        <li>
         张丹(Conan), 程序员Java,R,PHP,Javascript
        </li>
        <li>
         weibo：@Conan_Z
        </li>
        <li>
         blog:
         <a href="http://blog.fens.me/" style="color: #0e73b8;" target="_blank" title="粉丝日志|跨界的IT博客">
          http://blog.fens.me
         </a>
        </li>
        <li>
         email: bsspirit@gmail.com
        </li>
       </ul>
       <p style="color: #4d4d4f;">
        <b>
         From :
        </b>
        <a href="http://blog.fens.me/r-overview/" style="color: #0e73b8;" target="_blank" title="R语言知识体系概览">
         http://blog.fens.me/r-overview/
        </a>
       </p>
      </div>
      <div>
       <strong>
        注：转载文章均来自于公开网络，仅供学习使用，不会用于任何商业用途，如果侵犯到原作者的权益，请您与我们联系删除或者授权事宜，联系邮箱：contact@dataunion.org。转载数盟网站文章请注明原文章作者，否则产生的任何版权纠纷与数盟无关。
       </strong>
      </div>
      <!--content_text-->
      <div class="fenxian">
       <!-- JiaThis Button BEGIN -->
       <div class="jiathis_style_32x32">
        <p class="jiathis_button_weixin">
        </p>
        <p class="jiathis_button_tsina">
        </p>
        <p class="jiathis_button_qzone">
        </p>
        <p class="jiathis_button_cqq">
        </p>
        <p class="jiathis_button_tumblr">
        </p>
        <a class="jiathis jiathis_txt jtico jtico_jiathis" href="http://www.jiathis.com/share" target="_blank">
        </a>
        <p class="jiathis_counter_style">
        </p>
       </div>
       <!-- JiaThis Button END -->
      </div>
     </article>
     <!--content-->
     <!--相关文章-->
     <div class="xianguan">
      <div class="xianguantitle">
       相关文章！
      </div>
      <ul class="pic">
       <li>
        <a href="http://dataunion.org/24678.html">
         <img src="http://dataunion.org/wp-content/uploads/2016/06/20140917125452915416-216x200.jpg"/>
        </a>
        <a class="link" href="http://dataunion.org/24678.html" rel="bookmark" title="python3中的正则模块">
         python3中的正则模块
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/24675.html">
         <img src="http://dataunion.org/wp-content/uploads/2016/06/t015b337bd75d9ef893-161x200.jpg"/>
        </a>
        <a class="link" href="http://dataunion.org/24675.html" rel="bookmark" title="注释是恶魔，请不要再写一行注释">
         注释是恶魔，请不要再写一行注释
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/24660.html">
         <img src="http://dataunion.org/wp-content/uploads/2016/06/u16130037972892789947fm21gp0-300x157.jpg"/>
        </a>
        <a class="link" href="http://dataunion.org/24660.html" rel="bookmark" title="如何从Github上轻松安装R包">
         如何从Github上轻松安装R包
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/24654.html">
         <img src="http://dataunion.org/wp-content/uploads/2016/06/df53fac99fc53ba5a90666abcca25e6d_b-267x200.png"/>
        </a>
        <a class="link" href="http://dataunion.org/24654.html" rel="bookmark" title="简单形象又有趣地说说强大的神经网络">
         简单形象又有趣地说说强大的神经网络
        </a>
       </li>
      </ul>
     </div>
     <!--相关文章-->
     <div class="comment" id="comments">
      <!-- You can start editing here. -->
      <!-- If comments are closed. -->
      <p class="nocomments">
       Comments are closed.
      </p>
     </div>
     <!-- .nav-single -->
    </div>
    <!--Container End-->
    <aside id="sitebar">
     <div class="sitebar_list2">
      <div class="wptag">
       <span class="tagtitle">
        热门标签+
       </span>
       <div class="tagg">
        <ul class="menu" id="menu-%e5%8f%8b%e6%83%85%e9%93%be%e6%8e%a5">
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1605" id="menu-item-1605">
          <a href="http://taidizh.com/">
           泰迪智慧
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20884" id="menu-item-20884">
          <a href="http://www.transwarp.cn/">
           星环科技
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3538" id="menu-item-3538">
          <a href="http://datall.org/">
           珈和遥感
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20888" id="menu-item-20888">
          <a href="http://www.chinahadoop.cn/">
           小象学院
          </a>
         </li>
        </ul>
       </div>
      </div>
     </div>
     <div class="sitebar_list">
      <div class="textwidget">
       <div align="center">
        <a href="http://study.163.com/course/courseMain.htm?courseId=991022" target="_blank">
         <img src="http://dataunion.org/wp-content/uploads/2016/03/dv.jpg"/>
        </a>
       </div>
      </div>
     </div>
     <div class="sitebar_list">
      <h4 class="sitebar_title">
       文章分类
      </h4>
      <div class="tagcloud">
       <a class="tag-link-44" href="http://dataunion.org/category/industry/demo" style="font-size: 10.204724409449pt;" title="4个话题">
        Demo展示
       </a>
       <a class="tag-link-31" href="http://dataunion.org/category/experts" style="font-size: 15.826771653543pt;" title="52个话题">
        专家团队
       </a>
       <a class="tag-link-870" href="http://dataunion.org/category/tech/ai" style="font-size: 19.795275590551pt;" title="273个话题">
        人工智能
       </a>
       <a class="tag-link-488" href="http://dataunion.org/category/%e5%8a%a0%e5%85%a5%e6%95%b0%e7%9b%9f" style="font-size: 8pt;" title="1个话题">
        加入数盟
       </a>
       <a class="tag-link-869" href="http://dataunion.org/category/tech/viz" style="font-size: 17.204724409449pt;" title="93个话题">
        可视化
       </a>
       <a class="tag-link-30" href="http://dataunion.org/category/partners" style="font-size: 10.645669291339pt;" title="5个话题">
        合作伙伴
       </a>
       <a class="tag-link-889" href="http://dataunion.org/category/parterc" style="font-size: 11.582677165354pt;" title="8个话题">
        合作会议
       </a>
       <a class="tag-link-104" href="http://dataunion.org/category/books" style="font-size: 12.96062992126pt;" title="15个话题">
        图书
       </a>
       <a class="tag-link-220" href="http://dataunion.org/category/tech/base" style="font-size: 19.850393700787pt;" title="281个话题">
        基础架构
       </a>
       <a class="tag-link-219" href="http://dataunion.org/category/tech/analysis" style="font-size: 19.409448818898pt;" title="232个话题">
        数据分析
       </a>
       <a class="tag-link-887" href="http://dataunion.org/category/tech/dm" style="font-size: 13.291338582677pt;" title="17个话题">
        数据挖掘
       </a>
       <a class="tag-link-34" href="http://dataunion.org/category/tech" style="font-size: 20.732283464567pt;" title="404个话题">
        文章
       </a>
       <a class="tag-link-1" href="http://dataunion.org/category/uncategorized" style="font-size: 22pt;" title="693个话题">
        未分类
       </a>
       <a class="tag-link-4" href="http://dataunion.org/category/events" style="font-size: 14.503937007874pt;" title="29个话题">
        活动
       </a>
       <a class="tag-link-890" href="http://dataunion.org/category/tech/%e6%b7%b1%e5%ba%a6%e5%ad%a6%e4%b9%a0" style="font-size: 10.204724409449pt;" title="4个话题">
        深度学习
       </a>
       <a class="tag-link-221" href="http://dataunion.org/category/tech/devl" style="font-size: 18.968503937008pt;" title="193个话题">
        编程语言
       </a>
       <a class="tag-link-888" href="http://dataunion.org/category/career" style="font-size: 15.661417322835pt;" title="48个话题">
        职业规划
       </a>
       <a class="tag-link-5" href="http://dataunion.org/category/jobs" style="font-size: 14.11811023622pt;" title="25个话题">
        职位
       </a>
       <a class="tag-link-871" href="http://dataunion.org/category/industry" style="font-size: 15.716535433071pt;" title="49个话题">
        行业
       </a>
       <a class="tag-link-613" href="http://dataunion.org/category/industry/case" style="font-size: 16.984251968504pt;" title="84个话题">
        行业应用
       </a>
       <a class="tag-link-885" href="http://dataunion.org/category/industry/news" style="font-size: 17.425196850394pt;" title="102个话题">
        行业资讯
       </a>
       <a class="tag-link-10" href="http://dataunion.org/category/training" style="font-size: 14.228346456693pt;" title="26个话题">
        课程
       </a>
       <a class="tag-link-16" href="http://dataunion.org/category/sources" style="font-size: 15.661417322835pt;" title="48个话题">
        资源
       </a>
      </div>
     </div>
     <div class="sitebar_list">
      <h4 class="sitebar_title">
       功能
      </h4>
      <ul>
       <li>
        <a href="http://dataunion.org/wp-login.php?action=register">
         注册
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/wp-login.php">
         登录
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/feed">
         文章
         <abbr title="Really Simple Syndication">
          RSS
         </abbr>
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/comments/feed">
         评论
         <abbr title="Really Simple Syndication">
          RSS
         </abbr>
        </a>
       </li>
       <li>
        <a href="https://cn.wordpress.org/" title="基于WordPress，一个优美、先进的个人信息发布平台。">
         WordPress.org
        </a>
       </li>
      </ul>
     </div>
    </aside>
    <div class="clear">
    </div>
   </div>
   <!--main-->
   ﻿
   <footer id="dibu">
    <div class="about">
     <div class="right">
      <ul class="menu" id="menu-%e5%ba%95%e9%83%a8%e8%8f%9c%e5%8d%95">
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18024" id="menu-item-18024">
        <a href="http://dataunion.org/category/partners">
         合作伙伴
        </a>
       </li>
       <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20881" id="menu-item-20881">
        <a href="http://dataunion.org/contribute">
         文章投稿
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-20872" id="menu-item-20872">
        <a href="http://dataunion.org/category/%e5%8a%a0%e5%85%a5%e6%95%b0%e7%9b%9f">
         加入数盟
        </a>
       </li>
       <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22441" id="menu-item-22441">
        <a href="http://dataunion.org/f-links">
         友情链接
        </a>
       </li>
       <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20874" id="menu-item-20874">
        <a href="http://dataunion.org/aboutus">
         关于数盟
        </a>
       </li>
      </ul>
      <p class="banquan">
       数盟社区        ，
        做最棒的数据科学社区
      </p>
     </div>
     <div class="left">
      <ul class="bottomlist">
       <li>
        <a href="http://weibo.com/DataScientistUnion  " target="_blank" 　title="">
         <img src="http://dataunion.org/wp-content/themes/yzipi/images/weibo.png"/>
        </a>
       </li>
       <li>
        <a class="cd-popup-trigger" href="http://dataunion.org/1228.html#0">
         <img src="http://dataunion.org/wp-content/themes/yzipi/images/weixin.png"/>
        </a>
       </li>
      </ul>
      <div class="cd-popup">
       <div class="cd-popup-container">
        <h1>
         扫描二维码,加微信公众号
        </h1>
        <img src="http://dataunion.org/wp-content/themes/yzipi/images/2014-12-06-1515289049.png"/>
        <a class="cd-popup-close" href="http://dataunion.org/1228.html">
        </a>
       </div>
       <!-- cd-popup-container -->
      </div>
      <!-- cd-popup -->
     </div>
    </div>
    <!--about-->
    <div class="bottom">
     <a href="http://dataunion.org/">
      数盟社区
     </a>
     <a href="http://www.miitbeian.gov.cn/" rel="external nofollow" target="_blank">
      京ICP备14026740号
     </a>
     联系我们：
     <a href="mailto:contact@dataunion.org" target="_blank">
      contact@dataunion.org
     </a>
     <div class="tongji">
     </div>
     <!--bottom-->
     <div class="scroll" id="scroll" style="display:none;">
      ︿
     </div>
    </div>
   </footer>
   <!--dibu-->
  </div>
 </body>
</html>